﻿using System;

namespace Operations
{
    public abstract class Operation<TResult> : CommonOpertation
    {
        public abstract TResult Execute();

        public override void Execute(Delegate callback)
        {
            var actionResult = Execute();
            callback.DynamicInvoke(actionResult);
        }
    }
}